package org.wedding.center.service;

import org.wedding.center.entity.OrderInfo;
import org.wedding.dto.PageModel;
import org.wedding.center.dto.query.CouponQuery;
import org.wedding.center.entity.CouponInfo;

import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import org.wedding.utils.CommonResult;

import java.util.List;

/**
 * 优惠卷信息表(CouponInfo)表服务接口
 *
 * @author songkaiyue
 * @since 2025-05-14 16:25:46
 */
public interface CouponInfoService extends IService<CouponInfo> {

     /**
     * 分页查询
     * @return CommonResult 统一返回类
     */
    CommonResult<PageModel> findAll(CouponQuery query);

    public void addYhq(String userId) ;
    /**
     * 更新已过期优惠券
     * @return
     */
    CommonResult expired();

    CommonResult expiredById(String id);

    /**
     * 新增对象数据
     *
     * @param couponInfo 筛选条件
     * @return CommonResult 统一返回类
     */
    CommonResult add(CouponInfo couponInfo);

     /**
     * 通过主键查询数据
     *
     * @param id 主键
     * @return CommonResult 统一返回类
     */
    CommonResult<CouponInfo> view(String id);

    /**
     * 查询可用的平台卷
     *
     * @return CommonResult 统一返回类
     */
    List<CouponInfo> findByUseType();

     /**
     * 通过主键更新数据
     *
     * @param couponInfo 筛选条件
     * @return CommonResult 统一返回类
     */
    CommonResult updateEntity(CouponInfo couponInfo);

    /**
     * 通过主键删除数据
     *
     * @param ids 主键
     * @return CommonResult 统一返回类
     */
    CommonResult delete(List<String> ids);

    /**
     * 使用优惠券
     * @param orderInfo
     * @return
     */
    CommonResult<CouponInfo> useCoupon(OrderInfo orderInfo);
}
